/*
 * @Author: Mcfly
 * @Date: 2021-07-26 19:09:49
 * @LastEditTime: 2021-07-29 10:04:40
 * @LastEditors: Mcfly
 * @Description: 模拟人手的机器手，进行变量根据时间变化而变化的操作，就像人手推遥控器一样
 * @FilePath: \FTTfly\Ctrl\RoboHand.h
 * 本人github:https://github.com/McflyWZX
 */

#ifndef __ROBOHAND_H_
#define __ROBOHAND_H_

#include "stdbool.h"

typedef struct{
    float varStart; //输出初值
    float varEnd;   //输出终值
    float K;        //增长速率（每秒）
    float deltaT;
    float var;      //输出值
	bool allowFloat;//允许飘动，即var始终跟随varEnd做变化，将会动态调整K的符号
} RoboHand;

RoboHand *RoboHand_Init(float varStart, float varEnd, float K, bool allowFloat);
void RoboHand_UpdateFrame(RoboHand *roboHand);
void RoboHand_SetVarStart(RoboHand *roboHand, float varStart);
void RoboHand_SetVarEnd(RoboHand *roboHand, float varEnd);

#endif
